import {CHANG_INPUT_VALUE,ADD_TODO_ITEM,DELETE_TODO_ITEM,INIT_LIST_ACTION } from './actionTypes'
//笔记本 state所有store里的数据 默认为空

const defaultStatus = {
    inputValue:'',
    list:['绿蚁新醅酒，红泥小火炉。','晚来天欲雪，能饮一杯无！']
}
//state :store上次存储的数据 action:我传过来的要做什么的话
//reducer 可以接受state，但不可以修改state
//纯函数：给定固定的输入，就一定会有固定的输出，而且不会有任何副作用
//（返回不可是new Date()，异步请求）
export default (state = defaultStatus ,action) => {
    //console.log(state,action)
    if(action.type === CHANG_INPUT_VALUE){
        const newState = JSON.parse(JSON.stringify(state));//实现对对象的深拷贝
        newState.inputValue = action.value
        return newState;
    }
    if(action.type === ADD_TODO_ITEM){
        const newState = JSON.parse(JSON.stringify(state));//实现对对象的深拷贝
        newState.list.push(newState.inputValue)
        newState.inputValue = ""
        //console.log(newState)
        return newState;
    }
    if(action.type === DELETE_TODO_ITEM){
        const newState = JSON.parse(JSON.stringify(state));//实现对对象的深拷贝
        newState.list.splice(action.index,1)
        //console.log(newState)
        return newState;
    }
    if(action.type === INIT_LIST_ACTION){
        const newState = JSON.parse(JSON.stringify(state));//实现对对象的深拷贝
        newState.list = action.data
        //console.log(newState)
        return newState;
    }
    return state;
    
}